考題日期:2017/03/28
題號:993
星等:2
語言:C++
題目:
題意:
給一個大於等於 0 的整數 N,請你找到最小的自然數 Q ,使得在 Q 中所有數字(digit)的乘積等於 N 。
程式:
#include <iostream>
using namespace std;
int main()
{
int test;
long long num;
cin>>test;
while(test--)
{
cin>>num;
int arr[10000],n = 0;
if(num == 1)
{
cout<<"1";
}
else
{
for(int i = 9 ; i > 1 ; i--)
{
while(num%i == 0 && num >= i)
{
num /= i;
arr[n++] = i;
}
}
if(num == 1)
{
for(int i = n-1 ;i >= 0 ; i--)
{
cout<<arr[i];
}
}
else
cout<<"-1";
}
cout<<endl;
}
return 0;
}
測資:
測資第一行為測資數量,接下來Input、Output各一行。